package org.example.service.diary;

import com.baomidou.mybatisplus.extension.service.IService;
import org.example.model.common.PageResponseDto;
import org.example.model.common.ResponseResult;
import org.example.model.diary.dtos.DiaryContentByMonthDto;
import org.example.model.diary.dtos.DiaryCountGroupByDayDto;
import org.example.model.diary.dtos.DiaryInfoDto;
import org.example.model.diary.entities.DiaryInfo;
import org.example.model.diary.vos.AddDiaryInfoVo;
import org.example.model.diary.vos.SearchDiaryInfoVo;

import java.util.List;

/**
 * 日报信息服务层接口
 */
public interface DiaryInfoService extends IService<DiaryInfo> {

    /**
     * 添加一则日报信息记录
     */
    ResponseResult<Boolean> InsertDiaryInfo(Integer belongUserId);

    /**
     * 根据id修改一则日报信息记录
     */
    ResponseResult<Boolean> UpdateDiaryInfoById(AddDiaryInfoVo addDiaryInfoVo);

    /**
     * 根据id删除一则日报信息记录
     */
    ResponseResult<Boolean> DeleteDiaryInfoById(int id);

    /**
     * 根据条件（创建时间）分页查询日报信息
     */
    ResponseResult<PageResponseDto<List<DiaryInfoDto>>> SelectDiaryInfoListByConditions(SearchDiaryInfoVo searchDiaryInfoVo);

    /**
     * 获取本月的日报详情列表
     */
    ResponseResult<List<DiaryContentByMonthDto>> GetDiaryListByMonth (SearchDiaryInfoVo searchDiaryInfoVo);


    /**
     * 获取每天的日报数
     */
    ResponseResult<List<DiaryCountGroupByDayDto>> GetCurrentDayDiaryCount();
}
